package com.qckj.amz.utils.enums;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 产品状态
 *
 * 百度翻译代码
 *
 * 国家代码
 *
 * 注：切记code值不能重复，否则报错提示：Caused by: java.lang.IllegalStateException: Duplicate key PRODUCT_STATUS_INFRINGING_....
 */
public enum EnumAmzDictCode {

    //国家二字码代码
    COUNTRYCODE_CN("CN", "zh-CN"),
    COUNTRYCODE_UK("UK", "en-GB"),//英国
    COUNTRYCODE_US("US", "en-US"),//美国使用英语
    COUNTRYCODE_CA("CA", "en-CA"),//加拿大使用英语
    COUNTRYCODE_SG("SG", "en_SG"),//新加坡使用英语
    COUNTRYCODE_AU("AU", "en-AU"),//澳大利亚使用英语
    COUNTRYCODE_IN("IN", "id-ID"),//印度使用印地语-百度翻译不支持印地语，可使用英语代替
    COUNTRYCODE_ES("ES", "es-ES"),//西班牙语
    COUNTRYCODE_MX("MX", "es-MX"),//墨西哥使用西班牙语
    COUNTRYCODE_FR("FR", "fr-FR"),
    COUNTRYCODE_DE("DE", "de-DE"),
    COUNTRYCODE_IT("IT", "it-IT"),
    COUNTRYCODE_NL("NL", "nl-NL"),
    COUNTRYCODE_SE("SE", "sv-SE"),
    COUNTRYCODE_PL("PL", "pl-PL"),
    COUNTRYCODE_TR("TR", "tr-TR"),
    COUNTRYCODE_JP("JP", "ja-JP"),


    ;

    private String code;
    private String desc;

    EnumAmzDictCode(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    private static final Map<String, EnumAmzDictCode> ENUM_MAP = new HashMap<>();

    static {
        ENUM_MAP.putAll(Stream.of(EnumAmzDictCode.values()).collect(Collectors.toMap(EnumAmzDictCode::getCode, e -> e)));
    }

    public static String getDesc(String code) {
        return Optional.of(ENUM_MAP.get(code)).map(EnumAmzDictCode::getDesc).orElse("");
    }

}
